/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modeloredesdecomputadores;

import java.awt.Image;
import java.awt.Toolkit;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

/**
 * Classe usada para personalizar os Jframes
 * @author Cleiton
 */
public class PersonalizarJFrame {

    private JFrame jFrame;

    public PersonalizarJFrame(JFrame jFrame) {
        this.jFrame = jFrame;
    }

    public JFrame getjFrame() {
        return jFrame;
    }

    public void setjFrame(JFrame jFrame) {
        this.jFrame = jFrame;
    }

    /**
     * Coloca o JFrame no meio da Tela.
     */
    private void setPositionRElative() {
        jFrame.setLocationRelativeTo(null);
    }

    /**
     * Altera para o LookFeel padrão do sistema Operacional
     */
    private void setLookFeel() {
        try {
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(PersonalizarJFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            Logger.getLogger(PersonalizarJFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            Logger.getLogger(PersonalizarJFrame.class.getName()).log(Level.SEVERE, null, ex);
        } catch (UnsupportedLookAndFeelException ex) {
            Logger.getLogger(PersonalizarJFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * Método para criação de uma imagem apartir de uma String.
     * @param nameImagem nome da imagem com extensão
     * @return  objeto do tipo Imagem
     */
    public Image setImagem(String nameImagem) {
       ImageIcon imageIcon = new ImageIcon(getClass().getResource("/Redes/imagens/" + nameImagem));
        return imageIcon.getImage();
    }

    /**
     * Configura posição e LookFeel de um JFrame
     */
    void configure() {
        setPositionRElative();
        setLookFeel();
    }

    /**
     * Configura a posição, LookFeel e a imagem do Jframe
     * @param nameImagemString string com nome da imagem e a extensão
     */
    void configure(String nameImagemString) {
        setPositionRElative();
        setLookFeel();
        jFrame.setIconImage(setImagem(nameImagemString));
    }
}
